GC Points in a Threaded Environment
نویسنده
چکیده
Many garbage-collected systems, including most that involve a stop-the-world phase, restrict GC to socalled GC points. In single-threaded environments, GC points carry no overhead: when a GC must be done, the single thread is already at a GC point. In multi-threaded environments, however, only the thread that triggers the GC by failing an allocation will be at a GC point. Other threads must be rolled forward to their next GC point before the GC can take place. We compare, in the context of a high-performance JavaTM virtual machine, two approaches to advancing threads to a GC point, polling and code patching, while keeping all other factors constant. Code patching outperforms polling by an average of 4.7% and sometimes by as much as 11.2%, while costing only slightly more compiled code space. Put differently, since most programs spend less than 1/5 of the time in GC, a 4.7% bottom-line speedup amounts to more than a 20% reduction in the GC-related costs. Patching is, however, more difficult to implement. email address: [email protected] © 1998 Sun Microsystems, Inc. All rights reserved. The SML Technical Report Series is published by Sun Microsystems Laboratories, of Sun Microsystems, Inc. Printed in U.S.A. Unlimited copying without fee is permitted provided that the copies are not made nor distributed for direct commercial advantage, and credit to the source is given. Otherwise, no part of this work covered by copyright hereon may be reproduced in any form or by any means graphic, electronic, or mechanical, including photocopying, recording, taping, or storage in an information retrieval system, without the prior written permission of the copyright owner. TRADEMARKS Sun, Sun Microsystems, the Sun logo, and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. For information regarding the SML Technical Report Series, contact Jeanie Treichel, Editor-in-Chief .
منابع مشابه
Collecting The Garbage Without Blocking The Traffic
Java is an increasingly common platform for server-side applications. Such applications are usually long-running, heavily multi-threaded, require very large heaps, executed on multiprocessors, load classes dynamically and make stringent demands of garbage collector performance. Synchronisation of all application threads in order to perform a collection is shown to be a significant bottleneck bu...
متن کاملDynamic modeling of a part mating problem: threaded fastener insertion
A dynamic simulation of threaded insertion is developed based on Euler's equations, impulsive forces, and a geometric description for threaded parts. Points of contact between the threaded parts are determined and tracked during the simulation. Reaction forces are computed based on the contact locations and the velocity constraints given by the kinematic description. The simulation will be used...
متن کاملSafe and Timely Dynamic Updates for Multi-threaded Programs
Many dynamic updating systems have been developed that enable a program to be patched while it runs, to fix bugs or add new features. This paper explores techniques for supporting dynamic updates to multi-threaded programs, focusing on the problem of applying an update in a timely fashion while still producing correct behavior. Past work has shown that this tension of safety versus timeliness c...
متن کاملDigging In: Designs that Develop Intersubjectivity in Course Room Discourse
The purpose of this roundtable discussion was to explore factors that influence the design of the initial discussion prompts in course-based, online learning. The initial prompt is one of the first pieces of scaffolding necessary for the knowledge construction requisite in a constructivist learning environment. As a means of stimulating conversation among conference participants, intersubjectiv...
متن کاملData Threaded Query Evaluation in Shared - EverythingEnvironments
In this paper, we present data threaded execution, a new strategy to exploit pipelining and intra-operator parallelism in a shared-everything environment. Data threaded execution does neither suuer from execution skew caused by workload estimation errors, nor from the discretization error of processor scheduling as it appears in conventional strategies. Further more, data threaded execution avo...
متن کامل